package com.gxa.admin.service;

import com.gxa.admin.entity.vo.GoodsAuditVo;
import com.gxa.admin.param.GoodsParam;
import com.gxa.o2o.core.dto.ResultDTO;
import com.gxa.o2o.core.pojo.Goods;

import java.util.List;

public interface GoodsService {
    /**
     * 查询所有商品(未被删除的）
     * @return
     */
    ResultDTO listAll();

    /**
     * 通过条件分页查询
     * @param param
     * @return
     */
    ResultDTO listByParam(GoodsParam param);

    /**
     * 通过id查询
     * @param id
     * @return
     */
    ResultDTO findById(String id);

    /**
     * 删除（逻辑删除）
     * @param ids
     * @return
     */
    ResultDTO delete(List<String> ids);

    /**
     * 商品下架
     * @param ids
     * @return
     */
    ResultDTO offShelf(List<String> ids);

    /**
     * 商品审核，批量审核通过
     * @param ids
     * @return
     */
    ResultDTO audit(List<String> ids);

    /**
     * 审核
     * @param goodsAuditVo
     * @return
     */
    ResultDTO audit(GoodsAuditVo goodsAuditVo);

    /**
     * 修改商品
     * @param goods
     * @return
     */
    ResultDTO updateOne(Goods goods);

    /**
     * 添加
     * @param goods
     * @return
     */
    ResultDTO add(Goods goods);

}
